parser grammar Anasin2;

options {
  language = Java;
  tokenVocab = Analex2;
}
 
@header {
package PL.prac3;
}
 @rulecatch {catch (RecognitionException e) {
  throw e;}
  }
 
entrada : (asignacion  EOF| DOLAR); 
asignacion: (asignacion_numero|asignacion_booleano|asignacion_directorio|asignacion_mensaje|asignacion_variable|condicion)*;
asignacion_numero: IDENT OPERADOR NUMERO;
asignacion_booleano: IDENT OPERADOR BOOLEANO;
asignacion_directorio: IDENT OPERADOR DIRECTORIO;
asignacion_mensaje: IDENT OPERADOR CADENA;
asignacion_variable: SET_VAR OPERADOR (NUMERO|BOOLEANO|DIRECTORIO|CADENA);
comprobacion: (IDENT | VARIABLE | ((IDENT | VARIABLE) OPERADOR OPERADOR (NUMERO|BOOLEANO|DIRECTORIO|CADENA)));
condicion: OPCION OP_PARENTESIS comprobacion CL_PARENTESIS OP_LLAVE asignacion CL_LLAVE; 
